package com.cskaoyan.javase.oop2._1extends._11final._3variable._3static;

/**
 * 测试类
 *      访问类的全局常量,在某些场景下,不会触发类的初始化(静态代码块和静态成员变量的显式赋值不会执行)
 *      当访问用字面值常量赋值的全局常量时,不会触发类的初始化,静态代码块不会执行
 *      而访问new对象方式赋值的全局常量,会触发类的初始化,静态代码块会执行
 *
 *
 * @since 11:11
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Test {
    public static void main(String[] args) {
        // System.out.println(Y.num);
        // System.out.println(Y.NUM);
        // System.out.println(Y.NUM2);
        // System.out.println(Y.STR);
        System.out.println(Y.STR2);
    }
}

class Y {
    static int num = 10;
    static final int NUM = 10;
    static final double NUM2 = 0.1;
    static final String STR = "听我说,谢谢你~";
    static final String STR2 = new String("因为有你,温暖了四季~~");

    static {
        System.out.println("Y类进行初始化了~");
    }
}
